// pages/profile/profile.js
import { userBehavior } from './behavior'
import { getStorage, setStorage } from '../../../../utils/storage'
import { reqUploadFile, reqUpdateUserInfo } from '../../../../api/user'
import { toast } from '../../../../utils/extendApi'
Page({
  //注册behaviors
  behaviors: [userBehavior],

  // 页面的初始数据
  data: {
    isShowPopup: false // 控制更新用户昵称的弹框显示与否
  },

  // 显示修改昵称弹框
  onUpdateNickName() {
    this.setData({
      isShowPopup: true,
      'userinfo.nickname': this.data.userinfo.nickname
    })
  },

  // 弹框取消按钮
  cancelForm() {
    this.setData({
      isShowPopup: false
    })
  },
  async chooseAvatar(event) {
    //获取头像临时路径
    //临时路径有时效性 先传入服务器保存成永久路径
    //获取永久路径后再使用永久路径头像
    //用户保存 ,才算更新头像和昵称
    const { avatarUrl } = event.detail

    //获取头像以后,需要将临时路径通过wx.uploadFile上传服务器
    // wx.uploadFile({
    //   filePath: avatarUrl, //资源路径
    //   name: 'file', //文件对应的key
    //   url: 'https://gmall-prod.atguigu.cn/mall-api/fileUpload', //开发者服务器地址
    //   header: {
    //     token: getStorage('token')
    //   },
    //   success: (res) => {
    //     // console.log(res)
    //     //调用uploadFile 返回数据是JSON 需要自己转换
    //     const uploadRes = JSON.parse(res.data)
    //     this.setData({
    //       'userinfo.headimgurl': uploadRes
    //     })
    //   }
    // })
    //第二种封装的方法
    const res = await reqUploadFile(avatarUrl, 'file')
    this.setData({
      'userinfo.headimgurl': res.data
    })
  },

  //更新用户信息
  async updateUserinfo() {
    //调用用户更新接口
    const res = await reqUpdateUserInfo(this.data.userinfo)
    console.log(res)
    if (res.code === 200) {
      //用户信息更新成功以后需要将最新信息存储本地
      setStorage('userinfo', this.data.userinfo)

      this.setUserInfo(this.data.userinfo)

      //用户信息更新成功
      toast({ title: '用户信息更新成功' })
    }
  },

  //获取用户昵称
  getNickname(event) {
    //解构最新用户昵称
    const { nickname } = event.detail.value
    this.setData({
      'userinfo.nickname': nickname,
      isShowPopup: false
    })
  }
})
